import { keyLogin } from "../api/login";

export const initPlugin = callBack => {
  console.log("shareCreate Plugin 开始进行初始化");
  //尝试使用key 进行自动化登录
  //callBack 自动登录成功后后续流程的回调
  initPluginAuto(callBack);
};

// 自动登录流程
async function initPluginAuto(callBack) {
  //获取storage是否存在 登录信息
  chrome.storage.local
    .get(["bid", "token", "loginInfo", "loginKey"])
    .then(async result => {
      if (result.loginKey) {
        try {
          //如果存在 自动登录一次
          const params = {
            loginKey: result.loginKey,
            keyType: "CHROME_PLUGIN"
          };
          let baseUrl = atob(result.loginKey);
          console.log("backgound.js 自动初始化登录");
          const { code, data } = await keyLogin(params, baseUrl);
          if (code == 0) {
            console.log("backgound.js 自动初始化登录成功");
            if (chrome && chrome.storage && chrome.storage.local) {
              //console.log("使用chrome.storage 存储登录信息")
              let saveObj = {
                bid: data.bid,
                token: data.token,
                loginInfo: JSON.stringify(data),
                baseUrl: baseUrl.baseUrl
              };
              chrome.storage.local.set(saveObj).then(() => {});
            }

            console.log("自动登录成功， 执行回调");
            callBack(true);
            checkVersionUpdated(); // 登录成功后，执行版本更新脚本
          }
        } catch (e) {
          console.error(e);
          callBack(false);
        }
      } else {
        callBack(false);
      }
    });
}

// 检查版本更新
function checkVersionUpdated() {
  // 需要登录成功后提示更新
  chrome.storage.local.get(["bid", "token"]).then(async result => {
    console.log("获取到 bid 和 token 准备检查版本更新了 ");
    console.log(result);
  });
}

export function logout() {
  chrome.storage.local.set({
    loginKey: null,
    loginInfo: null
  });
}
